<?php

declare(strict_types=1);

namespace DreamCat\ObjectValid\Base;

use ReflectionParameter;
use ReflectionProperty;

/**
 * 校验注解接口
 * @author vijay
 */
interface ValidAnnoInterface
{
    /**
     * 错误信息
     * @param ReflectionProperty|ReflectionParameter $reflection 反射
     * @param mixed $value 对象属性值
     * @return string 错误信息
     */
    public function errorMessage(ReflectionProperty|ReflectionParameter $reflection, mixed $value): string;

    /**
     * 是否有效
     * @param mixed $value 对象属性值
     * @return bool 是否有效
     */
    public function isValid(mixed $value): bool;
}

# end of file
